|
Technical Q&AQTW 95 - QuickTime 3 for Windows SDK で発生する Borland 5.0 C++ のリンクエラー(1999 年 5 月 3 日)
Q: QuickTime 3 for Windows SDK をダウンロードしたのですが、Borland 5.0 C++ コンパイラ/リンカと「.lib」ファイルとの相性が悪いようです (32 ビット版の QuickTime 2.1.2 ファイルは問題なく動作していました)。tlink32 を介してリンクしようとすると、「Bad object file 'C:¥BC5¥LIB¥qtmlClient.lib' near file offset 0」というエラーが返されます。何が悪いのでしょうか。 A: Borland は、uSoft のフォーマットと互換性のない 32 ビットの lib フォーマットを持っています (しかも、Borland のリンカはその独自のフォーマットだけしかを読み込みません)。以前の QTW 2.1.2 SDK には、uSoft lib と Borland 32 ビット lib がそれぞれ含まれていましたが、QuickTime 3 for Windows には uSoft lib だけが同梱されています。 この問題を回避するには、2 つの方法があります。 1. QuickTime 3 for Windows SDK に用意されている qtmlclient.dll を使用します。QuickTime 3 for Windows SDK には、dll にリンクされる qtmlclient.lib ライブラリがすべて含まれています。Borland には、インポート lib を作成できるツールがあります (qtmlclient.lib を呼び出さないでください。そうでないと、本当の混乱してしまいます)。このアプローチの唯一の問題は、DLL からエクスポートした名前には、Borland が想定している先頭のアンダースコアがないということです。 このアンダースコアの問題を回避するため、次の例のように、プロジェクトの DEF ファイルに IMPORTS セクションを追加して、使用する必要のあるそれぞれの QuickTime 関数に明示的なインポートステートメントを組み込みます。 IMPORTS _ActivatePalette = qtmlclient.ActivatePalette _AddCallBackToTimeBase = qtmlclient.AddCallBackToTimeBase _AddComp = qtmlclient.AddComp _AddEmptyTrackToMovie = qtmlclient.AddEmptyTrackToMovie _AddFilePreview = qtmlclient.AddFilePreview . . . など 2. uSoft lib を認識できるコンパイラ/リンカを使用します。
-- Scott Kuechle Worldwide Developer Technical Support Technical Q&As | Contents Previous Question To contact us, please use the Contact Us page. |